using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.Xml.Linq;
using Connection;
namespace Entidades
{
	public abstract class DALEdicionesPostulacion
	{
		private const string __ErrorAlta = "No se pudo dar el alta (EdicionesPostulacion), ";
		private const string __ErrorBaja = "No se pudo dar la baja (EdicionesPostulacion), ";
		private const string __ErrorModificacion = "No se pudo hacer la modificacion (EdicionesPostulacion), ";
		private const string __ErrorTraerUno = "No se pudo Traer Uno (EdicionesPostulacion), ";
		private const string __ErrorTraerTodos = "No se pudo Traer Todos (EdicionesPostulacion), ";
		public static void Alta(EdicionesPostulacion EdicionesPostulacion)
		{
			try {
				parametrosArray pa = new parametrosArray();
				pa.add("IdPostulacion", EdicionesPostulacion.IdPostulacion);
				pa.add("Descripcion", EdicionesPostulacion.Descripcion);
				pa.add("FechaEdicion", EdicionesPostulacion.FechaEdicion);
				using (DataSet ds = Connection.Connection.Traer("p_EdicionesPostulacion_Alta", pa)) {
					if (ds.Tables.Count > 0) {
						EdicionesPostulacion.Id = int.Parse(ds.Tables[0].Rows[0][0].ToString());
					} else {
						throw new Exception(__ErrorAlta);
					}
				}
			} catch (Exception ex) {
				throw new Exception(__ErrorAlta + ex.Message);
			}
		}
		public static void Baja(int Id)
		{
			try {
				parametrosArray pa = new parametrosArray();
				pa.add("Id", Id);
				Connection.Connection.Ejecutar("p_EdicionesPostulacion_Baja", pa);
			} catch (Exception ex) {
				throw new Exception(__ErrorBaja + ex.Message);
			}
		}
		public static void Modificar(EdicionesPostulacion EdicionesPostulacion)
		{
			try {
				parametrosArray pa = new parametrosArray();
				pa.add("Id", EdicionesPostulacion.Id);
				pa.add("IdPostulacion", EdicionesPostulacion.IdPostulacion);
				pa.add("Descripcion", EdicionesPostulacion.Descripcion);
				pa.add("FechaEdicion", EdicionesPostulacion.FechaEdicion);
				Connection.Connection.Ejecutar("p_EdicionesPostulacion_Modificacion", pa);
			} catch (Exception ex) {
				throw new Exception(__ErrorModificacion + ex.Message);
			}
		}
		public static EdicionesPostulacion traerUno(int Id)
		{
			parametrosArray pa = new parametrosArray();
			pa.add("Id", Id);
			using (DataSet ds = Connection.Connection.Traer("p_EdicionesPostulacion_TraerUno", pa)) {
				if (ds.Tables.Count > 0) {
					if (ds.Tables[0].Rows.Count > 0) {
						return llenarEntidad(ds.Tables[0].Rows[0]);
					}
				}
			}
			throw new Exception(__ErrorTraerUno);
		}
		public static List<EdicionesPostulacion> TraerTodos()
		{
			using (DataSet ds = Connection.Connection.Traer("p_EdicionesPostulacion_TraerTodos")) {
				if (ds.Tables.Count > 0) {
					List<EdicionesPostulacion> li = new List<EdicionesPostulacion>();
					if (ds.Tables[0].Rows.Count > 0) {
						foreach (DataRow dr in ds.Tables[0].Rows) {
							li.Add(llenarEntidad(dr));
						}
					}
					return li;
				}
			}
			throw new Exception(__ErrorTraerTodos);
		}
		public static List<EdicionesPostulacion> getAllByIdPostulacion(int IdPostulacion)
		{
			parametrosArray pa = new parametrosArray();
			pa.add("IdPostulacion", IdPostulacion);
			using (DataSet ds = Connection.Connection.Traer("p_EdicionesPostulacion_getAllByIdPostulacion", pa)) {
				if (ds.Tables.Count > 0) {
					List<EdicionesPostulacion> li = new List<EdicionesPostulacion>();
					if (ds.Tables[0].Rows.Count > 0) {
						foreach (DataRow dr in ds.Tables[0].Rows) {
							li.Add(llenarEntidad(dr));
						}
					}
					return li;
				}
			}
			throw new Exception("ErrorgetAllByIdPostulacion");
		}
		private static EdicionesPostulacion llenarEntidad(DataRow dr)
		{
			EdicionesPostulacion EdicionesPostulacion = new EdicionesPostulacion();
			if (dr.Table.Columns.Contains("Id")) {
				if (!object.ReferenceEquals(dr["Id"], DBNull.Value)) {
					EdicionesPostulacion.Id = int.Parse(dr["Id"].ToString());
				}
			}
			if (dr.Table.Columns.Contains("IdPostulacion")) {
				if (!object.ReferenceEquals(dr["IdPostulacion"], DBNull.Value)) {
					EdicionesPostulacion.IdPostulacion = int.Parse(dr["IdPostulacion"].ToString());
				}
			}
			if (dr.Table.Columns.Contains("Descripcion")) {
				if (!object.ReferenceEquals(dr["Descripcion"], DBNull.Value)) {
					EdicionesPostulacion.Descripcion = dr["Descripcion"].ToString();
				}
			}
			if (dr.Table.Columns.Contains("FechaEdicion")) {
				if (!object.ReferenceEquals(dr["FechaEdicion"], DBNull.Value)) {
					EdicionesPostulacion.FechaEdicion = DateTime.Parse( dr["FechaEdicion"].ToString());
				}
			}
			return EdicionesPostulacion;
		}
	}
}
